home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-03 | 45.1 KB | 1,463 lines | [TEXT/MPS ] |
- //----------------------------------------------------------------------------------------
- // UAdorners.cp
- // Copyright © 1984-96 by Apple Computer, Inc. All rights reserved.
- //----------------------------------------------------------------------------------------
-
- #ifndef __UADORNERS__
- #include "UAdorners.h"
- #endif
-
- // MacApp
-
- #ifndef __UCOREGLOBALS__
- #include "UCoreGlobals.h"
- #endif
-
- #ifndef __UGEOMETRY__
- #include "UGeometry.h"
- #endif
-
- #ifndef __ULIST__
- #include "UList.h"
- #endif
-
- #ifndef __UMACAPPGLOBALS__
- #include "UMacAppGlobals.h"
- #endif
-
- #ifndef __USTREAM__
- #include "UStream.h"
- #endif
-
- #ifndef __UWINDOW__
- #include "UWindow.h"
- #endif
-
- // Toolbox
-
- #ifndef __ERRORS__
- #include <Errors.h>
- #endif
-
- #ifndef __TOOLUTILS__
- #include <ToolUtils.h>
- #endif
-
-
- //----------------------------------------------------------------------------------------
- // Definition for global variables declared in interface:
-
- // Global, pre-allocated, shared adorners
-
- TDimAdorner* gDimAdorner;
- TDrawAdorner* gDrawAdorner;
- TEraseAdorner* gEraseAdorner;
- THiliteAdorner* gHiliteAdorner;
- TPrintAdorner* gPrintAdorner;
- TResizeIconAdorner* gResizeIconAdorner;
- TSelectionAdorner* gSelectionAdorner;
-
-
- // Setup some basic RGB greyscale colors
- CRGBColor gRGBVeryLtGray(58333,
- 58333,
- 58333); // Setup the very light gray global
- CRGBColor gRGBLtGray(49152,
- 49152,
- 49152); // Setup the light gray global;
- CRGBColor gRGBGray(37000,
- 37000,
- 37000); // Setup the medium gray global;
- CRGBColor gRGBDkGray(20000,
- 20000,
- 20000); // Setup the dark gray global;
-
-
- //========================================================================================
- // CLASS CAdornerIterator
- //========================================================================================
- #undef Inherited
- #define Inherited CArrayIterator
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::CAdornerIterator:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CAdornerIterator::CAdornerIterator(const TView* theView,
- ArrayIndex itsLowBound,
- ArrayIndex itsHighBound,
- Boolean itsForward) :
- CArrayIterator(theView ? theView->fAdorners : NULL, itsLowBound, itsHighBound, itsForward)
- {
- }
- // CAdornerIterator::CAdornerIterator
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::CAdornerIterator:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CAdornerIterator::CAdornerIterator(const TView* theView,
- Boolean itsForward) :
- CArrayIterator(theView ? theView->fAdorners : NULL, itsForward)
- {
- }
- // CAdornerIterator::CAdornerIterator
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::CAdornerIterator:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CAdornerIterator::CAdornerIterator(const TView* theView) :
- CArrayIterator(theView ? theView->fAdorners : NULL, kIterateForward)
- {
- }
- // CAdornerIterator::CAdornerIterator
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::CAdornerIterator:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CAdornerIterator::CAdornerIterator(TAdornerList* theAdornerList) :
- CArrayIterator(theAdornerList, kIterateForward)
- {
- }
- // CAdornerIterator::CAdornerIterator
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::~CAdornerIterator:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CAdornerIterator::~CAdornerIterator()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::CurrentAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- TAdorner* CAdornerIterator::CurrentAdorner()
- {
- return ((TAdornerList *)fDynamicArray)->AdornerAt(fCurrentIndex);
- }
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::FirstAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- TAdorner* CAdornerIterator::FirstAdorner()
- {
- this->Reset();
-
- return More() ? ((TAdornerList *)fDynamicArray)->AdornerAt(fCurrentIndex) : NULL;
- }
-
- //----------------------------------------------------------------------------------------
- // CAdornerIterator::NextAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- TAdorner* CAdornerIterator::NextAdorner()
- {
- this->Advance();
-
- return More() ? ((TAdornerList *)fDynamicArray)->AdornerAt(fCurrentIndex) : NULL;
- }
-
-
- //========================================================================================
- // GLOBAL Procedures
- //========================================================================================
- #undef Inherited
-
- //----------------------------------------------------------------------------------------
- // InitUAdorners:
- //----------------------------------------------------------------------------------------
- #pragma segment MAInit
-
- void InitUAdorners()
- {
- // Register the system-supplied adorners
-
- MA_REGISTER_CLASS(TAdornerList);
-
- MA_REGISTER_SIGNATURE(TCompatibilityAdorner, kCompatibilityAdorner);
- MA_REGISTER_SIGNATURE(TDimAdorner, kDimAdorner);
- MA_REGISTER_SIGNATURE(TDrawAdorner, kDrawAdorner);
- MA_REGISTER_SIGNATURE(TEraseAdorner, kEraseAdorner);
- MA_REGISTER_SIGNATURE(TFrameAdorner, kFrameAdorner);
- MA_REGISTER_SIGNATURE(THiliteAdorner, kHiliteAdorner);
- MA_REGISTER_SIGNATURE(TLineBottomAdorner, kLineBottomAdorner);
- MA_REGISTER_SIGNATURE(TLineLeftAdorner, kLineLeftAdorner);
- MA_REGISTER_SIGNATURE(TLineRightAdorner, kLineRightAdorner);
- MA_REGISTER_SIGNATURE(TLineTopAdorner, kLineTopAdorner);
- MA_REGISTER_SIGNATURE(TOvalAdorner, kOvalAdorner);
- MA_REGISTER_SIGNATURE(TPrintAdorner, kPrintAdorner);
- MA_REGISTER_SIGNATURE(TResizeIconAdorner, kResizeIconAdorner);
- MA_REGISTER_SIGNATURE(TRRectAdorner, kRRectAdorner);
- MA_REGISTER_SIGNATURE(TSelectionAdorner, kSelectionAdorner);
- MA_REGISTER_SIGNATURE(TShadowedFrameAdorner, kShadowedFrameAdorner);
-
- // Create the global, shared, pre-allocated adorners
-
- gDimAdorner = new TDimAdorner;
- gDimAdorner->IDimAdorner();
-
- gDrawAdorner = new TDrawAdorner;
- gDrawAdorner->IDrawAdorner();
-
- gEraseAdorner = new TEraseAdorner;
- gEraseAdorner->IEraseAdorner();
-
- gHiliteAdorner = new THiliteAdorner;
- gHiliteAdorner->IHiliteAdorner();
-
- gPrintAdorner = new TPrintAdorner;
- gPrintAdorner->IPrintAdorner();
-
- gResizeIconAdorner = new TResizeIconAdorner;
- gResizeIconAdorner->IResizeIconAdorner();
-
- gSelectionAdorner = new TSelectionAdorner;
- gSelectionAdorner->ISelectionAdorner();
- }
-
- //----------------------------------------------------------------------------------------
- // NewStdAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TAdorner* NewStdAdorner(IDType signature,
- const ClassName& className,
- IDType itsID,
- Boolean freeOnDeletion)
- {
- TAdorner * anAdorner = (TAdorner *)NewObjectBySignature(signature, className);
- anAdorner->IAdorner(itsID, freeOnDeletion);
- return anAdorner;
- }
-
-
- //========================================================================================
- // CLASS TAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TObject
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TAdorner::TAdorner() :
- fIdentifier(kNoIdentifier),
- fFreeOnDeletion(TRUE)
- {
- }
- // TAdorner::TAdorner
-
- //----------------------------------------------------------------------------------------
- // TAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TAdorner::~TAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::IAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- void TAdorner::IAdorner(IDType itsID,
- Boolean freeOnDeletion)
- {
- IObject();
-
- fIdentifier = itsID;
- fFreeOnDeletion = freeOnDeletion;
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::AddedToView:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- void TAdorner::AddedToView(TView* /* itsView */ )
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::RemovedFromView:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- void TAdorner::RemovedFromView(TView* /* itsView */ )
- {
- if (fFreeOnDeletion)
- Free();
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::ReadFrom:
- //----------------------------------------------------------------------------------------
- #pragma segment MAReadResource
-
- void TAdorner::ReadFrom(TStream* aStream) // override
- {
- Inherited::ReadFrom(aStream);
-
- fIdentifier = aStream->ReadIDType();
- fFreeOnDeletion = aStream->ReadBoolean();
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::WriteTo:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- void TAdorner::WriteTo(TStream* aStream) // override
- {
- Inherited::WriteTo(aStream);
-
- aStream->WriteIDType(fIdentifier);
- aStream->WriteBoolean(fFreeOnDeletion);
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TAdorner::Draw(TView* /* itsView */ ,
- const VRect& /* area */ )
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::DrawLine:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TAdorner::DrawLine(VHSelect vhs,
- short lh,
- short lv,
- short lto)
- {
- MoveToPt(CPoint(lh, lv));
- if (vhs == hSel)
- Line(lto - lh, 0);
- else
- Line(0, lto - lv);
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::DoHighlightSelection:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TAdorner::DoHighlightSelection(TView* /* itsView */ ,
- const VRect&/* area */ ,
- HLState /* fromHL */,
- HLState /* toHL */)
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::InvalidateAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TAdorner::InvalidateAdorner(TView* itsView)
- {
- if (itsView)
- itsView->ForceRedraw();
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::ViewChangedFrame:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- void TAdorner::ViewChangedFrame(TView* /* itsView */ ,
- const VRect& /* oldFrame */ ,
- const VRect& /* newFrame */ ,
- Boolean /* invalidate */)
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdorner::DoesAdorn:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- Boolean TAdorner::DoesAdorn(TView* /* itsView */ )
- {
- return TRUE;
- }
-
-
- //========================================================================================
- // CLASS TCompatibilityAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TCompatibilityAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::TCompatibilityAdorner.
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TCompatibilityAdorner::TCompatibilityAdorner()
- {
- fIdentifier = kCompatibilityAdorner;
- fFreeOnDeletion = TRUE;
- fAdornment = 0;
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TCompatibilityAdorner::~TCompatibilityAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::ICompatibilityAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- void TCompatibilityAdorner::ICompatibilityAdorner(CntlAdornment itsAdornment)
- {
- IAdorner(kCompatibilityAdorner, kFreeOnDeletion);
- fAdornment = itsAdornment;
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TCompatibilityAdorner::GetStandardSignature()// override
- {
- return kCompatibilityAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::ReadFrom:
- //----------------------------------------------------------------------------------------
- #pragma segment MAReadResource
-
- void TCompatibilityAdorner::ReadFrom(TStream* aStream)// override
- {
- Inherited::ReadFrom(aStream);
-
- CntlAdornment itsAdornment;
- aStream->ReadBytes(&itsAdornment, sizeof(CntlAdornment));
- fAdornment = itsAdornment;
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::WriteTo:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- void TCompatibilityAdorner::WriteTo(TStream* aStream)// override
- {
- Inherited::WriteTo(aStream);
-
- CntlAdornment itsAdornment = fAdornment;
- aStream->WriteBytes(&itsAdornment, sizeof(CntlAdornment));
- }
-
- //----------------------------------------------------------------------------------------
- // TCompatibilityAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TCompatibilityAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- if (fAdornment != 0)
- {
- VRect itsAdornExtent;
-
- itsView->GetAdornExtent(itsAdornExtent);
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- CRect qdArea(itsView->ViewToQDRect(itsAdornExtent));// convert to QD coord's
-
- if (macroIn(fAdornment, adnShadow))
- {
- OpenRgn();
- ShowPen(); // so drawing occurs
- }
-
-
- if ((fAdornment & kFrame) == kFrame)// adnFrame
- FrameRect(&qdArea);
- else
- {
- if (macroIn(fAdornment, adnLineTop))
- DrawLine(hSel, qdArea.left, qdArea.top, qdArea.right);
-
- if (macroIn(fAdornment, adnLineLeft))
- DrawLine(vSel, qdArea.left, qdArea.top, qdArea.bottom);
-
- if (macroIn(fAdornment, adnLineBottom))
- {
- PenState pnState;
- GetPenState(&pnState);
- DrawLine(hSel, qdArea.left, qdArea.bottom - pnState.pnSize.v, qdArea.right);// account for pen height
- }
-
- if (macroIn(fAdornment, adnLineRight))
- {
- PenState pnState;
- GetPenState(&pnState);
- DrawLine(vSel, qdArea.right - pnState.pnSize.h, qdArea.top, qdArea.bottom);// account for pen width
- }
- }
-
- if (macroIn(fAdornment, adnOval))
- FrameOval(qdArea);
-
- if (macroIn(fAdornment, adnRRect))
- FrameRoundRect(qdArea, 16, 16);
-
- if (macroIn(fAdornment, adnShadow))
- {
- PenState pnState;
-
- CTemporaryRegion tempRgn;
- CTemporaryRegion tempRgn2;
-
- HidePen();
- CloseRgn(tempRgn);
-
- CopyRgn(tempRgn, tempRgn2);
- GetPenState(&pnState);
- OffsetRgn(tempRgn2, pnState.pnSize.h, pnState.pnSize.v);
- DiffRgn(tempRgn2, tempRgn, tempRgn2);
- PaintRgn(tempRgn2);
- }
- }
- }
- }
-
-
- //========================================================================================
- // CLASS TDimAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TDimAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TDimAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TDimAdorner::TDimAdorner()
- {
- fIdentifier = kDimAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TDimAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TDimAdorner::~TDimAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TDimAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TDimAdorner::GetStandardSignature() // override
- {
- return kDimAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TDimAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TDimAdorner::Draw(TView* itsView,
- const VRect&)
- {
- itsView->Dim();
- }
-
-
- //========================================================================================
- // CLASS TDrawAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TDrawAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TDrawAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TDrawAdorner::TDrawAdorner()
- {
- fIdentifier = kDrawAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TDrawAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TDrawAdorner::~TDrawAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TDrawAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TDrawAdorner::GetStandardSignature() // override
- {
- return kDrawAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TDrawAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TDrawAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- PenNormal();
- itsView->Draw(area);
- }
-
-
- //========================================================================================
- // CLASS TEraseAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TEraseAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TEraseAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TEraseAdorner::TEraseAdorner()
- {
- fIdentifier = kEraseAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TEraseAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TEraseAdorner::~TEraseAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TEraseAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TEraseAdorner::GetStandardSignature() // override
- {
- return kEraseAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TEraseAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TEraseAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- EraseRect(&itsView->ViewToQDRect(area));
- }
-
-
- //========================================================================================
- // CLASS THiliteAdorner:
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(THiliteAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // THiliteAdorner::THiliteAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- THiliteAdorner::THiliteAdorner()
- {
- fIdentifier = kHiliteAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // THiliteAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- THiliteAdorner::~THiliteAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // THiliteAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType THiliteAdorner::GetStandardSignature() // override
- {
- return kHiliteAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // THiliteAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void THiliteAdorner::Draw(TView* itsView,
- const VRect&)
- {
- itsView->Hilite();
- }
-
-
- //========================================================================================
- // CLASS TResizeIconAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TResizeIconAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TResizeIconAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TResizeIconAdorner::TResizeIconAdorner()
- {
- fIdentifier = kResizeIconAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TResizeIconAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TResizeIconAdorner::~TResizeIconAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TResizeIconAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TResizeIconAdorner::GetStandardSignature()// override
- {
- return kResizeIconAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TResizeIconAdorner::DoHighlightSelection:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TResizeIconAdorner::DoHighlightSelection(TView* itsView,
- const VRect&/* area */ ,
- HLState/* fromHL */ ,
- HLState/* toHL */ )
- {
- ((TWindow *)itsView)->DrawResizeIcon();
- }
-
-
- //========================================================================================
- // CLASS TSelectionAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TSelectionAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TSelectionAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TSelectionAdorner::TSelectionAdorner()
- {
- fIdentifier = kSelectionAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TSelectionAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TSelectionAdorner::~TSelectionAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TSelectionAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TSelectionAdorner::GetStandardSignature()// override
- {
- return kSelectionAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TSelectionAdorner::DoHighlightSelection:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TSelectionAdorner::DoHighlightSelection(TView* itsView,
- const VRect&/* area */ ,
- HLState fromHL,
- HLState toHL)
- {
- PenNormal();
- itsView->DoHighlightSelection(fromHL, toHL);
- }
-
-
- //========================================================================================
- // CLASS TPrintAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TPrintAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TPrintAdorner constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerNonRes
-
- TPrintAdorner::TPrintAdorner()
- {
- fIdentifier = kPrintAdorner;
- fFreeOnDeletion = FALSE;
- }
-
- //----------------------------------------------------------------------------------------
- // TPrintAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TPrintAdorner::~TPrintAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TPrintAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TPrintAdorner::GetStandardSignature() // override
- {
- return kPrintAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TPrintAdorner::DoHighlightSelection:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TPrintAdorner::DoHighlightSelection(TView* itsView,
- const VRect& area,
- HLState fromHL,
- HLState/* toHL */ )
- {
- // only do this in the "HandleDraw" case; in which case "fromHL" is hlOff
- if (fromHL == hlOff)
- itsView->DoDrawPrintFeedback(area);
- }
-
-
- //========================================================================================
- // CLASS TFrameAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TFrameAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TFrameAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TFrameAdorner::~TFrameAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TFrameAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TFrameAdorner::GetStandardSignature() // override
- {
- return kFrameAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TFrameAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TFrameAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- FrameRect(&itsView->ViewToQDRect(itsAdornExtent));
- }
-
-
- //========================================================================================
- // CLASS TShadowedFrameAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TShadowedFrameAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TShadowedFrameAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TShadowedFrameAdorner::~TShadowedFrameAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TShadowedFrameAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TShadowedFrameAdorner::GetStandardSignature()// override
- {
- return kShadowedFrameAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TShadowedFrameAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TShadowedFrameAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- CRect qdArea(itsView->ViewToQDRect(itsAdornExtent));// convert to QD coord's
- qdArea[botRight] -= CPoint(1, 1);
-
- PenSize(1, 1);
- FrameRect(qdArea);
- MoveTo(qdArea.left + 1, qdArea.bottom);
- LineToPt(qdArea[botRight]);
- LineTo(qdArea.right, qdArea.top + 1);
- }
- }
-
-
- //========================================================================================
- // CLASS TLineBottomAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TLineBottomAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TLineBottomAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TLineBottomAdorner::~TLineBottomAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TLineBottomAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TLineBottomAdorner::GetStandardSignature()// override
- {
- return kLineBottomAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TLineBottomAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TLineBottomAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- PenState pnState;
- GetPenState(&pnState);
- CRect qdArea = itsView->ViewToQDRect(itsAdornExtent);// convert to QD coord's
- DrawLine(hSel, qdArea.left, qdArea.bottom - pnState.pnSize.v, qdArea.right);// account for pen height
- }
- }
-
-
- //========================================================================================
- // CLASS TLineLeftAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TLineLeftAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TLineLeftAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TLineLeftAdorner::~TLineLeftAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TLineLeftAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TLineLeftAdorner::GetStandardSignature() // override
- {
- return kLineLeftAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TLineLeftAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TLineLeftAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- CRect qdArea(itsView->ViewToQDRect(itsAdornExtent));// convert to QD coord's
- DrawLine(vSel, qdArea.left, qdArea.top, qdArea.bottom);
- }
- }
-
-
- //========================================================================================
- // CLASS TLineRightAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TLineRightAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TLineRightAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TLineRightAdorner::~TLineRightAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TLineRightAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TLineRightAdorner::GetStandardSignature()// override
- {
- return kLineRightAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TLineRightAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TLineRightAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- PenState pnState;
- GetPenState(&pnState);
- CRect qdArea(itsView->ViewToQDRect(itsAdornExtent));// convert to QD coord's
- DrawLine(vSel, qdArea.right - pnState.pnSize.h, qdArea.top, qdArea.bottom);// account for pen width
- }
- }
-
-
- //========================================================================================
- // CLASS TLineTopAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TLineTopAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TLineTopAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TLineTopAdorner::~TLineTopAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TLineTopAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TLineTopAdorner::GetStandardSignature() // override
- {
- return kLineTopAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TLineTopAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TLineTopAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- {
- CRect qdArea(itsView->ViewToQDRect(itsAdornExtent));// convert to QD coord's
- DrawLine(hSel, qdArea.left, qdArea.top, qdArea.right);
- }
- }
-
-
- //========================================================================================
- // CLASS TOvalAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TOvalAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TOvalAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TOvalAdorner::~TOvalAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TOvalAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TOvalAdorner::GetStandardSignature() // override
- {
- return kOvalAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TOvalAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TOvalAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- FrameOval(&itsView->ViewToQDRect(itsAdornExtent));
- }
-
-
- //========================================================================================
- // CLASS TRRectAdorner
- //========================================================================================
- #undef Inherited
- #define Inherited TAdorner
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TRRectAdorner,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TRRectAdorner destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TRRectAdorner::~TRRectAdorner()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TRRectAdorner::GetStandardSignature:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- IDType TRRectAdorner::GetStandardSignature() // override
- {
- return kRRectAdorner;
- }
-
- //----------------------------------------------------------------------------------------
- // TRRectAdorner::Draw:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TRRectAdorner::Draw(TView* itsView,
- const VRect& area)
- {
- VRect itsAdornExtent;
- itsView->GetAdornExtent(itsAdornExtent);
-
- if (!(area & itsAdornExtent).Empty()) // is there something to draw?
- FrameRoundRect(&itsView->ViewToQDRect(itsAdornExtent), 16, 16);
- }
-
-
-
- //========================================================================================
- // CLASS TAdornerList
- //========================================================================================
- #undef Inherited
- #define Inherited TSortedDynamicArray
-
- #pragma segment MAAdornerNonRes
- MA_DEFINE_CLASS_M1(TAdornerList,
- Inherited);
-
- //----------------------------------------------------------------------------------------
- // TAdornerList destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TAdornerList::~TAdornerList()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TAdornerList::ReadFrom:
- //----------------------------------------------------------------------------------------
- #pragma segment MAReadResource
-
- void TAdornerList::ReadFrom(TStream* aStream) // override
- {
- Inherited::ReadFrom(aStream);
-
- // read the size of the list
- ArrayIndex itsSize;
- itsSize = aStream->ReadLong();
-
- // add in each element
- for (short count = 0; count < itsSize; ++count)
- {
- TAdorner * itsAdorner = NULL;
- AdornPriority itsPriority;
-
- itsPriority = aStream->ReadByte();
-
- if (aStream->ReadStreamObject((TObject * &)itsAdorner))
- AddAdorner(itsAdorner, itsPriority);
- #if qDebugMsg
- else
- ProgramBreak("###Unknown TAdorner in TAdornerList::ReadFrom.");
- #endif
-
- }
- }
-
- //----------------------------------------------------------------------------------------
- // TAdornerList::WriteTo:
- //----------------------------------------------------------------------------------------
- #pragma segment MAWriteResource
-
- void TAdornerList::WriteTo(TStream* aStream) // override
- {
- Inherited::WriteTo(aStream);
-
- // write the size of the list
- ArrayIndex itsSize;
- itsSize = GetSize();
- aStream->WriteLong(itsSize);
-
- // write out each element
- if (itsSize > 0)
- for (short count = 1; count <= itsSize; ++count)
- {
- AdornerElementPtr theAdornerElementPtr;
- theAdornerElementPtr = (AdornerElementPtr)ComputeAddress(count);
-
- aStream->WriteByte(theAdornerElementPtr->priority);
-
- aStream->WriteStreamObject(theAdornerElementPtr->adorner, kStandardObject);
- }
- }
-
- //----------------------------------------------------------------------------------------
- // TAdornerList::CompareElements:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- CompareResult TAdornerList::CompareElements(void* Element1,
- void* Element2)// Override
- {
- CompareResult returnVal = kItem1EqualItem2;
-
- AdornPriority priority1 = ((AdornerElementPtr)Element1)->priority;
- AdornPriority priority2 = ((AdornerElementPtr)Element2)->priority;
-
- if (priority1 > priority2)
- returnVal = kItem1GreaterThanItem2;
- else if (priority1 < priority2)
- returnVal = kItem1LessThanItem2;
-
- return returnVal;
- }
-
- //----------------------------------------------------------------------------------------
- // TAdornerList::AddAdorner:
- //----------------------------------------------------------------------------------------
- #pragma segment MAAdornerRes
-
- void TAdornerList::AddAdorner(TAdorner* itsAdorner,
- AdornPriority itsPriority)
- {
- // Need to avoid adding itsAdorner with itsPriority if it's already in the array, so test each
- // item in the array and then bail out if it's already in the array.
- Boolean wasInList = FALSE;
- ArrayIndex itsSize = GetSize();
- if (itsSize > 0)
- for (short count = 1; count <= itsSize; ++count)
- {
- AdornerElementPtr theAdornerElementPtr;
- theAdornerElementPtr = (AdornerElementPtr)ComputeAddress(count);
-
- if ((theAdornerElementPtr->adorner == itsAdorner) && (theAdornerElementPtr->priority == itsPriority))
- {
- wasInList = TRUE;
- break; // it's already in the list, so bail out.
- }
- }
-
- if (!wasInList)
- {
- // It's not already in the list, so insert it.
- AdornerElement anAdornerElement(itsPriority, itsAdorner);
-
- InsertElementInOrder(&anAdornerElement);
- }
- }
-
- //----------------------------------------------------------------------------------------
- // End of UAdorners.cp
-
- #pragma segment Inline
-
-